Subsurface scattering in a wagering game machine

ABSTRACT

Systems and methods provide subsurface scattering on graphical images displayed for wagering games.

RELATED APPLICATIONS

This patent application claims the benefit of the filing date of U.S.Provisional Patent Application Ser. No. 60/909,008, filed Mar. 30, 2007,and entitled, “WAGERING GAME MACHINE EMPLOYING A SUBSURFACE SCATTERINGSHADER”, and of U.S. Provisional Patent Application Ser. No. 60/953,589,filed Aug. 2, 2007, and entitled, “SUBSURFACE SCATTERING IN A WAGERINGGAME MACHINE”, the contents of which are incorporated herein byreference in their entirety.

FIELD

The embodiments relate generally to wagering game machines and moreparticularly to providing a subsurface scattering shader on wageringgame machines.

LIMITED COPYRIGHT WAIVER

A portion of the disclosure of this patent document contains material towhich the claim of copyright protection is made. The copyright owner hasno objection to the facsimile reproduction by any person of the patentdocument or the patent disclosure, as it appears in the U.S. Patent andTrademark Office file or records, but reserves all other rightswhatsoever. Copyright © 2007, 2008 WMS Gaming Inc. All Rights Reserved.

BACKGROUND

Wagering game machine makers continually provide new and entertaininggames. One way of increasing entertainment value associated withcasino-style wagering games (e.g., video slots, video poker, video blackjack, and the like) includes offering a variety of base games and bonusevents. However, despite the variety of base games and bonus events,players often lose interest in repetitive wagering game content. Inorder to maintain player interest, wagering game machine makersfrequently update wagering game content with new game themes, gamesettings, bonus events, game software, and other electronic data.Further, entertainment value may be increased by providing an enhancedvisual game play experience.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of a wagering game machine, according toexample embodiments of the invention.

FIG. 2 is a perspective view of a portable wagering game machineaccording to an example embodiment.

FIG. 3A is a block diagram of an architecture, including a controlsystem, for a wagering game machine according to an example embodiment.

FIG. 3B is a block diagram of a graphics processing unit according to anexample embodiment.

FIG. 4 is a diagram illustrating a method for performing subsurfacescattering according to embodiments of the invention.

FIG. 5 is a flowchart illustrating methods according to embodiments ofthe invention.

FIGS. 6A-6C are example displays illustrating the effects of subsurfacescattering

FIG. 7 is an example screen image illustrating a wagering game withobjects rendered using subsurface scattering according to embodiments ofthe invention.

FIGS. 8A-8C illustrate various bounding geometries used in varyingembodiments of the invention.

DETAILED DESCRIPTION

In the following detailed description of exemplary embodiments of theinvention, reference is made to the accompanying drawings which form apart hereof, and in which is shown by way of illustration specificexemplary embodiments in which the invention may be practiced. Theseembodiments are described in sufficient detail to enable those skilledin the art to practice the invention, and it is to be understood thatother embodiments may be utilized and that logical, mechanical,electrical and other changes may be made without departing from thescope of the inventive subject matter.

Some portions of the detailed descriptions which follow are presented interms of algorithms and symbolic representations of operations on databits within a computer memory. These algorithmic descriptions andrepresentations are the ways used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of steps leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared, and otherwise manipulated. It hasproven convenient at times, principally for reasons of common usage, torefer to these signals as bits, values, elements, symbols, characters,terms, numbers, or the like. It should be borne in mind, however, thatall of these and similar terms are to be associated with the appropriatephysical quantities and are merely convenient labels applied to thesequantities. Unless specifically stated otherwise as apparent from thefollowing discussions, terms such as “processing” or “computing” or“calculating” or “determining” or “displaying” or the like, refer to theaction and processes of a computer system, or similar computing device,that manipulates and transforms data represented as physical (e.g.,electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

In the Figures, the same reference number is used throughout to refer toan identical component which appears in multiple Figures. Signals andconnections may be referred to by the same reference number or label,and the actual meaning will be clear from its use in the context of thedescription.

The description of the various embodiments is to be construed asexemplary only and does not describe every possible instance of theinvention. Numerous alternatives could be implemented, usingcombinations of current or future technologies, which would still fallwithin the scope of the claims. The following detailed description is,therefore, not to be taken in a limiting sense, and the scope of thepresent invention is defined only by the appended claims.

Example Wagering Game Machine

FIG. 1 is a perspective view of a wagering game machine, according toexample embodiments of the invention. Referring to FIG. 1, a wageringgame machine 100 is used in gaming establishments, such as casinos.According to embodiments, the wagering game machine 100 can be any typeof wagering game machine and can have varying structures and methods ofoperation. For example, the wagering game machine 100 can be anelectromechanical wagering game machine configured to play mechanicalslots, or it can be an electronic wagering game machine configured toplay video casino games, such as blackjack, slots, keno, poker,blackjack, roulette, etc.

The wagering game machine 100 comprises a housing 112 and includes inputdevices, including value input devices 118 and a player input device124. For output, the wagering game machine 100 includes a primarydisplay 114 for displaying information about a basic wagering game. Theprimary display 114 can also display information about a bonus wageringgame and a progressive wagering game. The wagering game machine 100 alsoincludes a secondary display 116 for displaying wagering game events,wagering game outcomes, and/or signage information. While somecomponents of the wagering game machine 100 are described herein,numerous other elements can exist and can be used in any number orcombination to create varying forms of the wagering game machine 100.

The value input devices 118 can take any suitable form and can belocated on the front of the housing 112. The value input devices 118 canreceive currency and/or credits inserted by a player. The value inputdevices 118 can include coin acceptors for receiving coin currency andbill acceptors for receiving paper currency. Furthermore, the valueinput devices 118 can include ticket readers or barcode scanners forreading information stored on vouchers, cards, or other tangibleportable storage devices. The vouchers or cards can authorize access tocentral accounts, which can transfer money to the wagering game machine100.

The player input device 124 comprises a plurality of push buttons on abutton panel 126 for operating the wagering game machine 100. Inaddition, or alternatively, the player input device 124 can comprise atouch screen 128 mounted over the primary display 114 and/or secondarydisplay 116.

The various components of the wagering game machine 100 can be connecteddirectly to, or contained within, the housing 112. Alternatively, someof the wagering game machine's components can be located outside of thehousing 112, while being communicatively coupled with the wagering gamemachine 100 using any suitable wired or wireless communicationtechnology.

The operation of the basic wagering game can be displayed to the playeron the primary display 114. The primary display 114 can also display abonus game associated with the basic wagering game. The primary display114 can include a cathode ray tube (CRT), a high resolution liquidcrystal display (LCD), a plasma display, light emitting diodes (LEDs),or any other type of display suitable for use in the wagering gamemachine 100. Alternatively, the primary display 114 can include a numberof mechanical reels to display the outcome. In FIG. 1, the wagering gamemachine 100 is an “upright” version in which the primary display 114 isoriented vertically relative to the player. Alternatively, the wageringgame machine can be a “slant-top” version in which the primary display114 is slanted at about a thirty-degree angle toward the player of thewagering game machine 100. In yet another embodiment, the wagering gamemachine 100 can exhibit any suitable form factor, such as a freestanding model, bartop model, mobile handheld model, or workstationconsole model. Further, in some embodiments, the wagering game machine100 may be include an attached chair assembly, and may include audiospeakers designed to provide an enhanced audio environment. For example,a “surround sound” system may be included as part of the wagering gamemachine and may be integrated with the attached chair.

A player begins playing a basic wagering game by making a wager via thevalue input device 118. The player can initiate play by using the playerinput device's buttons or touch screen 128. The basic game can includearranging a plurality of symbols along a payline 132, which indicatesone or more outcomes of the basic game. Such outcomes can be randomlyselected in response to player input. At least one of the outcomes,which can include any variation or combination of symbols, can trigger abonus game.

In some embodiments, the wagering game machine 100 can also include aninformation reader 152, which can include a card reader, ticket reader,bar code scanner, RFD transceiver, or computer readable storage mediuminterface. In some embodiments, the information reader 152 can be usedto award complimentary services, restore game assets, track playerhabits, etc.

Example Portable Wagering Game Machine

FIG. 2 shows an example embodiment of a portable wagering game machine200. The portable wagering game machine 200 can include any suitableelectronic handheld or mobile device configured to play a video casinogame such as blackjack, slots, keno, poker, blackjack, and roulette. Thewagering game machine 200 comprises a housing 212 and includes inputdevices, including a value input device 218 and a player input device224. For output, the wagering game machine 200 includes a primarydisplay 214, and may include a secondary display 216, one or morespeakers 217, one or more player-accessible ports 219 (e.g., an audiooutput jack for headphones, a video headset jack, etc.), and otherconventional I/O devices and ports, which may or may not beplayer-accessible. In the embodiment depicted in FIG. 2, the wageringgame machine 200 includes a secondary display 216 that is rotatablerelative to the primary display 214. The optional secondary display 216can be fixed, movable, and/or detachable/attachable relative to theprimary display 214. Either the primary display 214 and/or secondarydisplay 216 can be configured to display any aspect of a non-wageringgame, wagering game, secondary game, bonus game, progressive wageringgame, group game, shared-experience game or event, game event, gameoutcome, scrolling information, text messaging, emails, alerts orannouncements, broadcast information, subscription information, andwagering game machine status.

The player-accessible value input device 218 can comprise, for example,a slot located on the front, side, or top of the casing 212 configuredto receive credit from a stored-value card (e.g., casino card, smartcard, debit card, credit card, etc.) inserted by a player. Theplayer-accessible value input device 218 can also comprise a sensor(e.g., an RF sensor) configured to sense a signal (e.g., an RF signal)output by a transmitter (e.g., an RF transmitter) carried by a player.The player-accessible value input device 218 can also or alternativelyinclude a ticket reader, or barcode scanner, for reading informationstored on a credit ticket, a card, or other tangible portable credit orfunds storage device. The credit ticket or card can also authorizeaccess to a central account, which can transfer monetary value to thewagering game machine 200.

Still other player-accessible value input devices 218 can require theuse of touch keys 230 on the touch-screen display (e.g., primary display214 and/or secondary display 216) or player input devices 224. Uponentry of player identification information and, preferably, secondaryauthorization information (e.g., a password, PIN number, stored valuecard number, predefined key sequences, etc.), the player can bepermitted to access a player's account. As one potential optionalsecurity feature, the wagering game machine 200 can be configured topermit a player to only access an account the player has specificallyset up for the wagering game machine 200. Other conventional securityfeatures can also be utilized to, for example, prevent unauthorizedaccess to a player's account, to minimize an impact of any unauthorizedaccess to a player's account, or to prevent unauthorized access to anypersonal information or funds temporarily stored on the wagering gamemachine 200.

The player-accessible value input device 218 can itself comprise orutilize a biometric player information reader which permits the playerto access available funds on a player's account, either alone or incombination with another of the aforementioned player-accessible valueinput devices 218. In an embodiment wherein the player-accessible valueinput device 218 comprises a biometric player information reader,transactions such as an input of value to the wagering game machine 210,a transfer of value from one player account or source to an accountassociated with the wagering game machine 200, or the execution ofanother transaction, for example, could all be authorized by a biometricreading, which could comprise a plurality of biometric readings, fromthe biometric device.

Alternatively, to enhance security, a transaction can be optionallyenabled only by a two-step process in which a secondary source confirmsthe identity indicated by a primary source. For example, aplayer-accessible value input device 218 comprising a biometric playerinformation reader can require a confirmatory entry from anotherbiometric player information reader 252, or from another source, such asa credit card, debit card, player ID card, fob key, PIN number,password, hotel room key, etc. Thus, a transaction can be enabled by,for example, a combination of the personal identification input (e.g.,biometric input) with a secret PIN number, or a combination of abiometric input with an authentication fob input, or a combination of afob input with a PIN number, or a combination of a credit card inputwith a biometric input. Essentially, any two independent sources ofidentity, one of which is secure or personal to the player (e.g.,biometric readings, PIN number, password, etc.) could be utilized toprovide enhanced security prior to the electronic transfer of any funds.In another aspect, the value input device 218 can be provided remotelyfrom the wagering game machine 210.

The player input device 224 may include a plurality of push buttons on abutton panel for operating the wagering game machine 200. In addition,or alternatively, the player input device 224 can comprise a touchscreen mounted to the primary display 214 and/or secondary display 216.In one aspect, the touch screen is matched to a display screen havingone or more selectable touch keys 230 selectable by a user's touching ofthe associated area of the screen using a finger or a tool, such as astylus pointer. A player enables a desired function either by touchingthe touch screen at an appropriate touch key 230 or by pressing anappropriate push button on the button panel. The touch keys 230 can beused to implement the same functions as push buttons. Alternatively, thepush buttons 226 can provide inputs for one aspect of the operating thegame, while the touch keys 230 can allow for input needed for anotheraspect of the game. The various components of the wagering game machine200 can be connected directly to, or contained within, the casing 212,as seen in FIG. 2, or can be located outside the casing 212 andconnected to the casing 212 via a variety of wired (tethered) orwireless connection methods. Thus, the wagering game machine 200 cancomprise a single unit or a plurality of interconnected (e.g., wirelessconnections) parts which can be arranged to suit a player's preferences.

The operation of the basic wagering game on the wagering game machine200 is displayed to the player on the primary display 214. The primarydisplay 214 can also display a bonus game associated with the basicwagering game. The primary display 214 preferably takes the form of ahigh resolution LCD, a plasma display, an LED, or any other type ofdisplay suitable for use in the wagering game machine 200. The size ofthe primary display 214 can vary from, for example, about a 2-3″ displayto a 15″ or 17″ display. In at least some embodiments, the primarydisplay 214 is a 7″-10″ display. In one embodiment, the size of theprimary display can be increased. Optionally, coatings or removablefilms or sheets can be applied to the display to provide desiredcharacteristics (e.g., anti-scratch, anti-glare, bacterially-resistantand anti-microbial films, etc.). In at least some embodiments, theprimary display 214 and/or secondary display 216 can have a 16:9 aspectratio or other aspect ratio (e.g., 4:3). The primary display 214 and/orsecondary display 216 can also each have different resolutions,different color schemes, and different aspect ratios.

A player typically begins play of the basic wagering game on thewagering game machine 200 by making a wager (e.g., via the value inputdevice 218 or an assignment of credits stored on the portable wageringgame machine 200 via the touch screen keys 230, player input device 224,or buttons 226) on the wagering game machine 200. In some embodiments,the basic game can comprise a plurality of symbols arranged in an array,and includes at least one payline 232 that indicates one or moreoutcomes of the basic game. Such outcomes can be randomly selected inresponse to the wagering input by the player. At least one of theplurality of randomly selected outcomes can be a start-bonus outcome,which can include any variations of symbols or symbol combinationstriggering a bonus game.

In some embodiments, the player-accessible value input device 218 of thewagering game machine 200 can double as a player information reader 252that allows for identification of a player by reading a card withinformation indicating the player's identity (e.g., reading a player'scredit card, player ID card, smart card, etc.). The player informationreader 252 can alternatively or also comprise a bar code scanner, RFIDtransceiver or computer readable storage medium interface. In oneembodiment, the player information reader 252 comprises a biometricsensing device.

In some embodiments, a portable wagering game machine 200 can part of aportable wireless communication device, such as a personal digitalassistant (PDA), a laptop or portable computer with wirelesscommunication capability, a web tablet, a wireless telephone, a wirelessheadset, a pager, an instant messaging device, a digital camera, atelevision, or other device that can receive and/or transmit informationwirelessly.

FIG. 3A is a block diagram illustrating a wagering game machinearchitecture 300, including a control system, according to exampleembodiments of the invention. As shown in FIG. 3A, the wagering gamemachine 306 includes a central processing unit (processor) 326 connectedto main memory 328, which may store wagering game software 332. In oneembodiment, the wagering game software can include software associatedwith presenting wagering games, such as video poker, video black jack,video slots, video lottery, etc., in whole or part. In addition,wagering game software 332 may include bonus rounds, themes, advertisingcontent, attract mode content, pay tables, denomination tables, audiofiles, video files, operating system files and other software associatedwith a wagering game or the operation of a wagering game machine.

The processor 326 is also connected to an input/output (I/O) bus 322,which facilitates communication between the wagering game machine'scomponents. The I/O bus 322 may be connected to a payout mechanism 308,primary display 310, secondary display 312, value input device 314,player input device 316, information reader 318, and/or storage unit330. The player input device 316 can include the value input device 314to the extent the player input device 316 is used to place wagers. TheI/O bus 322 may also be connected to an external system interface 324,which is connected to external systems 304 (e.g., wagering gamenetworks).

In general, graphics processing unit 354 processes three-dimensionalgraphics data and may be included as part of primary display 310 and/orsecondary display 312. Graphics processing unit 354 includes componentsthat may be used to provide a real-time three-dimensional rendering of athree-dimensional space based on input data. Various graphics enginesare known in the art and may be used in various embodiments of theinvention. In some embodiments, the graphics engine comprises aRenderWare graphics engine, available from Criterion Software. Graphicsprocessing unit 354 may be implemented in software, hardware, or acombination of software and hardware.

In some embodiments, graphics processing unit 354 provides a set of oneor more components that provide real-time three dimensional computergraphics for a wagering game application or other software running on awagering game machine. Graphics processing unit 354 may also be referredto as a game engine. In some embodiments, graphics processing unit 354provides an underlying set of technologies in an operating systemindependent manner such that a wagering game may be easily adapted torun on multiple platforms, including various hardware platforms such asstand-alone and portable wagering game machines and various softwareplatforms such as Linux, UNIX, Mac OS X and Microsoft Windows familiesof operating systems. In some embodiments, graphics processing unit 354may include various combinations of one or more components such as arendering engine (“renderer”) for two dimensional or three dimensionalgraphics, a physics engine and/or components providing collisiondetection, sound, scripting, animation, artificial intelligence,networking, and scene graphs. A scene graph is generally considered tobe an object-oriented representation of a three dimensional game worldand is designed for efficient rendering of vast virtual worlds. Thus invarious embodiments, a real-time rendering of a three-dimensional modelsuch as a scene graph is provided for a wagering game application orother software operating on a wagering game machine.

The components described above may be implemented in variouscombinations of software, hardware and/or firmware. Further, while shownas part of a control system 300 for a wagering game machine, graphicsprocessing unit 354 or portions thereof may reside on systems externalto the wagering game machine, such as on a game server.

In some embodiments, the components of graphics processing unit 354 maybe replaced or extended with more specialized components. For example,in particular embodiments, graphics processing unit 354 may be providedas a series of loosely connected components that can be selectivelycombined to create a custom graphics engine for a wagering gameapplication.

As noted above, various components may be present in a graphicsprocessing unit 354. Some graphics engines provide real-time 3Drendering capabilities while other components outside of the graphicsengine provide other functionality used by wagering games. These typesof graphics engines 340 may be referred to as a “rendering engine,” or“3D engine”.

In some embodiments, the graphics processing unit 354 may utilize and bedesigned substantially in accordance with various versions of a graphicsAPI such as Direct3D or OpenGL which provides a software abstraction ofa graphics processing unit or video card. Further, in some embodiments,low-level libraries such as DirectX, SDL (Simple DirectMedia Layer), andOpenAL may also be used in presenting a wagering game in order to assistin providing hardware-independent access to other computer hardware suchas input devices (mouse, keyboard, and joystick), network cards, andsound cards.

Wagering game software 332 may be loaded from storage unit 330, or itmay be loaded from external systems 304 such as servers of other systemson a wagering game network (illustrated further in FIG. 2). In general,wagering game software 332 comprises modules or units that operate topresent one or more wagering game upon which monetary value may bewagered. During the course of presenting the wagering games, imagescomposed of graphical objects are displayed on primary display 310and/or secondary display 312. The graphical objects may representvarious wagering game elements such as reels, cards, dice, symbols,animations, etc., and may also represent elements of a bonus round orother ancillary wagering game software component.

Storage unit 330 and/or main memory 328 may store a shader program 336.Shader program 336 comprises a program that is designed to operate on agraphics processor 354 that may coupled to one or both of primarydisplay 310 or secondary display 312. Shader programs 336 may also bereceived from an external system 304, for example via external systeminterface 324. In general, shader program 336 may be downloaded to thegraphics processor for execution on the graphics processor, and providescommands and/or data that control the rendering of graphical objectsprocessed by the graphics processing unit. The shader program may applygraphical characteristics such as texture, shadowing, lighting etc. tographical objects rendered by the graphics processing unit. Furtherdetails on the operation of shader programs on a graphics processor areprovided below.

In one embodiment, the wagering game machine 306 can include additionalperipheral devices and/or more than one of each component shown in FIG.3. For example, the peripherals may include a bill validator, a printer,a coin hopper, a button panel, or any of the many peripherals now foundin wagering game machines or developed in the future. Further, in someembodiments, the wagering game machine 306 can include multiple externalsystem interfaces 324 and multiple processors 326. In one embodiment,any of the components can be integrated or subdivided. Additionally, inone embodiment, the components of the wagering game machine 306 can beinterconnected according to any suitable interconnection architecture(e.g., directly connected, hypercube, etc.).

In one embodiment, any of the functionality of the various components ofthe wagering game machine architecture 300 (e.g., the wagering gamesoftware 332) can be provided or implemented in hardware, firmware,and/or software for performing the operations described herein.Machine-readable media includes any mechanism that provides (i.e.,stores and/or transmits) information in a form readable by a machine(e.g., a wagering game machine, computer, etc.). For example, tangiblemachine-readable media includes read only memory (ROM), random accessmemory (RAM), magnetic disk storage media, optical storage media, flashmemory machines, etc. Machine-readable media also includes any mediasuitable for transmitting software over a network.

In operation, a player may use the portable wagering game machine toactivate a play of a wagering game on the machine. Using the availableinput mechanisms such as value input device 314 or devices coupledthrough player input device 316, the player may select any variablesassociated with the wagering game and place his/her wager to purchase aplay of the game. In a play of the game, the processor 326 generates atleast one random event using a random number generator (RNG) andprovides an award to the player for a winning outcome of the randomevent. Alternatively, the random event may be generated by a remotecomputer using an RNG or pooling schema and then transmitted to thewagering game machine. The processor 326 operates the display 114 torepresent the random event(s) and outcome(s) in a visual form that canbe understood by the player. In some embodiments, a wagering gamesegment may be triggered based on certain events. For example, a bonusround may be triggered.

FIG. 3B is a block diagram illustrating further details of a graphicsprocessing unit 354 according to example embodiments of the invention.Graphics processing unit 354 receives video commands and data 352 fromprocessor 326 and produces video output 366 for presentation on adisplay coupled to the graphics processing unit 354. In someembodiments, graphics processing unit 354 includes an interface 356, acontroller 358, memory 360 and implements one or more graphics pipelines362. While the embodiments of the invention are not limited to anyparticular graphics processing unit 354, some embodiments use a graphicsprocessing unit from the ATI RADEON® family of graphics processing unitsavailable from ATI Technologies Inc. of Markham, Ontario Canada. Inalternative embodiments, a graphics processing unit from the NVIDIAfamily of graphics processing units available from NVIDIA Corporation ofSanta Clara, Calif.

Interface 356 provides an interface between processor 326 and graphicsprocessing unit 354. Interface 356 may be an I/O (input/output)interface or a bridge device to interface directly to processor 326.Examples of interface 356 include the Intel Northbridge and the IntelSouthbridge type interfaces.

Commands/Data 352 received at Interface 356 may be processed byController 358. Controller 358 may be a processor used to coordinate andmanage processing of video data by the graphics processing unit 354. Forexample, controller 358 may control the placement of commands and datainto memory 360, and may manage commands and data passed to the one ormore graphics pipelines 362.

As noted above, graphics processing unit 354 may include one or moregraphics pipelines 362. In some embodiments, graphics processing unitmay include 48 graphics pipelines 362. The inclusion of multiplegraphics pipelines 362 on a graphics processing unit 354 enablesgraphics commands and data to be processed in parallel.

The graphics pipelines 362 may each include a processor 364. In someembodiments, the processor 364 may be referred to as a programmableshader. It should be noted that other processors may also be included aspart of graphics pipeline 362. For example, a geometry processor and/ora rasterizer may also be included in a pipeline 362. Other processors orcomputation units may be included and may perform a variety ofspecialized functions that can include table lookups, scalar and vectoraddition, multiplication, division, coordinate-system mapping,calculation of vector normals, tessellation, calculation of derivatives,interpolation, and the like.

Programmable shader 364 may execute a shader program 336 loaded intomemory 360 at run-time by controller 358. The shader program may bereceived from processor 326 through interface 352. In some embodiments,shader program 336 may be specified in a shader programming languagethat is proprietary to the graphics processing unit manufacturer. Inalternative embodiments, a set or subset of “standardized” graphicsoperations commands and/or data may be supported. Examples of suchstandardized operations include various versions of DirectX or OpenGLlanguages.

The commands and/or data comprising shader program 336 for execution byprogrammable shader 364 in general include commands and/or data thatcontrol various aspects that affect the rendering of final surfaceproperties of graphical objects to be presented on a display of awagering game machine. For example, shader program 336 may includeoperations that include the calculation of one or more of: texturemapping, bump mapping, light mapping (light absorption, diffusion,reflection, refraction, shadowing), specular mapping, surfacedisplacement, and other post-processing effects. Various parameterscontrolling the shading may be passed as parameters to the shaderprogram. For example, the number of lights and lighting parameters(intensity, color etc.) may be passed as parameters to the shaderprogram.

A programmable shader 364 may include one or more constant stores 368. Aconstant store may be a register, set of registers, or memory that maybe used to store data for use by a shader program 336.

Various embodiments may implement one or various types of programmableshaders depending on the capabilities and requirements of a particulargraphical processing unit 354. In general, the various types ofprogrammable shaders include vertex shaders, geometry shaders, and pixelshaders. Multiple types of programmable shaders may exist on a graphicsprocessing unit at the same time.

In general, vertex shaders operate on each vertex in a model containingthree-dimensional graphical objects. Vertex shaders define a method tocompute vector space transformations and other computations. In someembodiments, vertex type of programmable shader operates on basic datatypes, so graphical objects composed of complex structures are brokendown before being passed to the vertex shader. The vertex shaderreceives the vertex positions of the graphical object in addition toparameters controlling the shading and positioning of the verticesdefining the graphical object or objects. Functions that may be appliedto the data include mesh deformation, vertex displacements, and texturecoordinate transformations.

In general, pixel shaders may be used to compute pixel properties suchas pixel color. Pixel shaders are typically applied for each pixel in agraphical object being processed in the pipeline. As with vertexshaders, various parameters may be supplied to the shader program tocontrol lighting and texture computations applied to the set of pixelsthrough the operation of the shader. For example, the parameters mayspecify the number, positions, intensities, and colors of one or morelights illuminating the graphical objects in a three-dimensional model.

In general, geometry shaders operate on vertices that may be groupedinto primitives such as triangles, lines, strips and points. Thevertices may comprise output from a vertex shader. Additionally,geometry shaders may make copies of input primitives, and as a resultcreate new sets of vertices.

As discussed above, various parameters may be supplied to controllighting and shading. In some embodiments, the shaders may implementvarious types of shading models, including Gouraud shading, Phongshading and/or bump mapping.

In some embodiments, processor 326, graphics processor 354 and/or shaderprograms 336 may be used alone or in various combinations to producevarious three-dimensional rendering effects for a wagering game machine.For example, in some embodiments, the graphics processor 354 may beoperable to perform subsurface scattering. In general, subsurfacescattering more accurately models the way light diffuses after it entersan object. Further, subsurface scattering more accurately models the wayan object absorbs and retransmits light. As an example, such absorptionand retransmission allows one to know the difference between a class ofmilk and a glass of white paint. While both may be white and in acontainer, they both absorb and retransmit light in different ways. Theuse of subsurface scattering techniques as described herein provides amechanism to display object in a manner that reflects the different waysthat different objects may absorb and retransmit light. Further, thesystems and methods described herein provide a mechanism to performsubsurface scattering in real time and without preprocessing related tothe subsurface scattering.

The systems and methods of the inventive subject matter approximatesubsurface scattering by using bounding geometry to gauge a raysdistance to the edge of the object.

Subsurface scattering gives cues to the viewer about an objects materialproperty by simulating the diffusion of light through the object. Thesystems and methods of the inventive subject matter approximatesubsurface scattering by computing the distance from a pixel to edge ofa bounding sphere in the direction of the light source and uses thisdistance as an attenuation factor to limit the luminance of a pixel.

FIG. 4 pictorially illustrates subsurface scattering according to someembodiments. In some embodiments, subsurface scattering may be performedby defining a bounding geometry 404 around a graphical object 402 to berendered. In some embodiments, bounding geometry 404 may be a sphere. Ageneral description of the method performed for each pixel is asfollows. As an example, a pixel 412 on the face of the object 402 willbe used. A distance 410 is calculated from the pixel 412 to anintersection point 414 on the bounding sphere 404 along a ray or vector(i.e., a light vector) 408 from pixel 412 to light source 406.

FIG. 5 illustrates methods for performing subsurface scatteringaccording to embodiments of the invention. As used herein, the term“receiving” includes reading data from a memory or register, receivingdata from a network interface, receiving data in a graphics pipeline,receiving data calculated by a special purpose calculation engine or anyother mechanism for obtaining data.

The method begins at block 502 by executing a wagering game componentfor a wagering game upon which monetary value may be wagered. Thewagering game component may be a base wagering game, a bonus round for awagering game, an episode of a wagering game, advertisement displayed onthe wagering game, idle or attract mode software, or any other softwareexecuting on a wagering game machine. The component may have graphicalobjects that are rendered and displayed on one of the displays of thewagering game machine.

At block 504, a system executing the method receives a graphical objectfor the wagering game component. The graphical object may be symbol on areel, the reel itself, dice, balls, characters, cards, backgrounds,buildings or any other object displayed as part of a wagering gamecomponent. The inventive subject matter is not limited to any particulartype of graphical object.

At block 506, a system executing the method receives the position of alight source.

At block 508, a system executing the method receives the position andsize of bounding geometry. In some embodiments, the bounding geometrymay be a sphere. The use of a sphere for the bounding geometry isdesirable for speed and simplicity. However, as noted below, other typesof bounding geometry may be used. In some embodiments, an equationdescribing the position and size of the bounding geometry is loaded intoa constant store of a pixel shader.

At block 510, a pixel of the graphical object is obtained forprocessing. In some embodiments, the graphical object may be describedby a plurality of vertices. A vertex shader computes the real worldspace position of each vertex and passes the position to a pixel shader.The real world position of the pixel may then be obtained byinterpolation.

At block 512, a system executing the method computes the distance fromthe pixel to the edge of the bounding geometry along a light vectorformed by the pixel and the light source. In those embodiments where thebounding geometry is a sphere, the intersection of the light vector withthe bounding geometry may be determined by the following formula:

-   -   s=vector from pixel to sphere center

λ=(s·lightvector)²+√{square root over ((s·lightvector)² −∥s∥²+radius²))}

Intersection=pos+(λ,*lightvector)  (1)

The distance from the pixel to the intersection point may then becomputed.

In some embodiments, it is desirable that the light source position,bounding sphere center, and current pixel position in 3-space be in thesame coordinate system.

At block 514, the distance, or a value derived from the distance, may beused to determine a display property. In some embodiments, the distancevalue is scaled to map the value into the range [0,1]. Further in someembodiments, the distance value may be scaled. In particularembodiments, a scale factor of the radius*0.2 of the bounding sphere isused. Other mappings may be used to achieve desired effects and arewithin the scope of the inventive subject matter.

The scaled distance may then be used to determine a display property. Insome embodiments, the scaled distance is used to sample or perform alook-up for a 1D texture that has been defined such that the 1d texturedescribes a material's subsurface scattering properties. In alternativeembodiments, the distance may be used to determine a luminance value forthe pixel. For example, the distance may be used as an attenuationfactor to limit the luminance of the pixel.

At block 516, a system executing the method determines if there arepixels left to process. If so, the method returns to block 510 toprocess the next pixel of the graphical object. Otherwise, the methodreturns to block 504 to process the next graphical object, if any.

It should be noted that the actions described above need not occur inthe precise order indicated above. For example, blocks 504, 506 and 508may be executed in any order.

FIGS. 6A and 6B illustrate the rendering of an object without and withsubsurface scattering employed during the rendering process. FIG. 6Cshows two images of an elephant. The elephant on the left is renderedwith standard light attenuation, while the elephant on the right isrendered with standard light attenuation and approximated subsurfacescattering using the systems and methods described herein.

FIG. 7 illustrates the use of subsurface scattering in an examplewagering game image. In the example shown, the gemstones 702 in theimage may be rendered using subsurface scattering, resulting in a morerealistic image of the gemstones. For example, the appearance of jademay be accurately rendered using the systems and methods of theembodiments illustrated herein. Other types of objects that may berendered using subsurface scattering include skin, area fog, varioustypes of liquids (milk, paint etc.) or planets. Among others, any typeof object where it is desirable to render the object such that it has aninner glow may be rendered using the systems and methods of theembodiments of the inventive subject matter.

Graphical objects may be rendered using the subsurface scatteringsystems and methods described herein in response to various game relatedevents. For example, graphical objects that are selectable may berendered using sub-surface scattering to differentiate the objects fromthose that are not selectable. Alternatively, graphical objects thathave been selected may be rendered using sub-surface scattering whilethose objects that are not selectable, or that remain to be selected maybe rendered without subsurface scattering.

The above description of subsurface scattering has used a boundingsphere, however other bounding geometries or shapes may be used and arewithin the scope of the inventive subject matter. For example, asillustrated in FIG. 8A, a bounding ellipsoid 804 may be used for agraphical object 802. Further, as illustrated in FIG. 8B, a boundingrectangle 812 may be used for a graphical object 810.

Additionally, as illustrated in FIG. 8C, different bounding geometriesmay be used to render different portions of a graphical object 820. Inthe example shown, two bounding ellipsoids 822 and 826 and a boundingsphere 824 are used to render the L shaped object 820. In someembodiments, the decision as to which type of bounding shape to use maybe made in a programmable shader.

CONCLUSION

Systems and methods for presenting a wagering game segment in which aplayer navigates through a three-dimensional space on a display of awagering game machines have been described. Although specificembodiments have been illustrated and described herein, it will beappreciated by those of ordinary skill in the art that any arrangementwhich is calculated to achieve the same purpose may be substituted forthe specific embodiments shown. For example, while illustrated as partof a wagering game machine, the systems and methods have applicabilityto other systems employing graphical displays. This application isintended to cover any adaptations or variations of the inventive subjectmatter.

The terminology used in this application is meant to include all ofthese environments. It is to be understood that the above description isintended to be illustrative, and not restrictive. Many other embodimentswill be apparent to those of skill in the art upon reviewing the abovedescription. Therefore, it is manifestly intended that this invention belimited only by the following claims and equivalents thereof.

The Abstract is provided to comply with 37 C.F.R. §1.72(b) to allow thereader to quickly ascertain the nature and gist of the technicaldisclosure. The Abstract is submitted with the understanding that itwill not be used to limit the scope of the claims.

1. A system comprising: at least one processor and a memory operable topresent a component of wagering game upon which monetary value may bewagered; and at least one graphics processing unit coupled to the atleast one processor, the graphical processor operable to: receive agraphical object for the component, receive a position of a lightsource, receive a position of a bounding geometry, for each pixel in aset of pixels in the graphical object, performing the actions of:compute a distance from the pixel to an edge of the bounding geometryalong a vector including the pixel and the light source, determine adisplay property of the pixel in accordance with the distance, anddisplay the set of pixels in accordance with the display property ofeach pixel.
 2. The system of claim 1, wherein the bounding geometry is asphere.
 3. The system of claim 1, wherein the display property is aluminance of the pixel.
 4. The system of claim 1, wherein the displayproperty is a one dimensional texture.
 5. The system of claim 1, whereinthe graphical processor is further operable to scale the distance. 6.The system of claim 5, wherein the graphical processor maps the scaleddistance to a value between 0 and
 1. 7. The system of claim 5, whereinthe scaled distance is calculated using a scaling factor determined bysquaring a radius of the bounding geometry.
 8. The system of claim 1,wherein the graphical processing unit includes shader and wherein anequation determining a position and size of the bounding geometry isstored into a constant store of the shader.
 9. The system of claim 1,wherein the graphical processor includes a vertex shader operable todetermine a world space position for each vertex in the graphical objectand a pixel shader operable to utilize the world space position todetermine a world space position for the pixel in the graphical object.10. A method for execution by one or more processors, the methodcomprising: receiving a graphical object in a wagering game upon whichmonetary value may be wagered; receiving a position of a light source;receiving a position of a bounding geometry; for each pixel in a set ofpixels in the graphical object, performing the actions of: computing bythe one or more processors a distance from the pixel to an edge of thebounding geometry along a vector including the pixel and the lightsource, determining by the one or more processors a display property ofthe pixel in accordance with the distance; and displaying the set ofpixels in accordance with the display property for each pixel in the setof pixels.
 11. The method of claim 10, wherein the bounding geometry isa sphere.
 12. The method of claim 10, wherein the display property is aluminance of the pixel.
 13. The method of claim 10, wherein the displayproperty is a one dimensional texture.
 14. The method of claim 10,further comprising scaling the distance.
 15. The method of claim 14,wherein scaling the distance maps the distance to a value between 0and
 1. 16. The method of claim 14, wherein scaling the distance utilizesa scaling factor determined by squaring a radius of the boundinggeometry.
 17. The method of claim 10, further comprising storing anequation determining a position and size of the bounding geometry into aconstant store of a shader.
 18. The method of claim 10, furthercomprising: determining a world space position for each vertex in thegraphical object; utilizing the world space position to determine aworld space position for a pixel in the graphical object.
 19. The methodof claim 18, wherein the world space position of each vertex isdetermined by a vertex shader and further comprising passing the worldspace position of the vertex to a pixel shader.
 20. A machine-readablemedium having machine executable instructions for causing one or moreprocessors to perform a method, the method comprising: receiving agraphical object in a wagering game upon which monetary value may bewagered; receiving a position of a light source; receiving a position ofa bounding geometry; for each pixel in a set of pixels in the graphicalobject, performing the actions of: computing a distance from the pixelto an edge of the bounding geometry along a vector including the pixeland the light source, determining a display property of the pixel inaccordance with the distance; and displaying the set of pixels inaccordance with the display property for each pixel in the set ofpixels.
 21. The machine-readable medium of claim 20, wherein thebounding geometry is a sphere.